1. 創建一個基本的RESTful API
在ASP.NET Core中,我們可以通過控制器來處理HTTP請求,實現RESTful API的各種操作(GET, POST, PUT, DELETE)。首先,讓我們建立一個簡單的API控制器。
[ApiController]
[Route("api/[controller]")]
public class StudentsController : ControllerBase
{
    private readonly MyDbContext _context;
    public StudentsController(MyDbContext context)
    {
        _context = context;
    }
    // GET: api/Students
    [HttpGet]
    public async Task<ActionResult<IEnumerable<Student>>> GetStudents()
    {
        return await _context.Students.ToListAsync();
    }
    // GET: api/Students/5
    [HttpGet("{id}")]
    public async Task<ActionResult<Student>> GetStudent(int id)
    {
        var student = await _context.Students.FindAsync(id);
        if (student == null)
        {
            return NotFound();
        }
        return student;
    }
    // POST: api/Students
    [HttpPost]
    public async Task<ActionResult<Student>> PostStudent(Student student)
    {
        _context.Students.Add(student);
        await _context.SaveChangesAsync();
        return CreatedAtAction("GetStudent", new { id = student.Id }, student);
    }
    // PUT: api/Students/5
    [HttpPut("{id}")]
    public async Task<IActionResult> PutStudent(int id, Student student)
    {
        if (id != student.Id)
        {
            return BadRequest();
        }
        _context.Entry(student).State = EntityState.Modified;
        try
        {
            await _context.SaveChangesAsync();
        }
        catch (DbUpdateConcurrencyException)
        {
            if (!StudentExists(id))
            {
                return NotFound();
            }
            else
            {
                throw;
            }
        }
        return NoContent();
    }
    // DELETE: api/Students/5
    [HttpDelete("{id}")]
    public async Task<IActionResult> DeleteStudent(int id)
    {
        var student = await _context.Students.FindAsync(id);
        if (student == null)
        {
            return NotFound();
        }
        _context.Students.Remove(student);
        await _context.SaveChangesAsync();
        return NoContent();
    }
    private bool StudentExists(int id)
    {
        return _context.Students.Any(e => e.Id == id);
    }
}
此控制器實現了CRUD操作,包括查詢(GET)、創建(POST)、更新(PUT)、刪除(DELETE)等API端點。
創建API之後,下一步是將其部署到生產環境。ASP.NET Core支持多種部署方式,以下是幾個常見的部署平台:
2.1 部署到IIS
首先,需要在IIS中安裝ASP.NET Core托管模組,然後將應用發布為一個文件夾,並將其部署到IIS中。
dotnet publish --configuration Release
發布後,將生成的文件夾拷貝到伺服器,並在IIS中設置網站的應用程序池和路徑。
2.2 部署到Azure
在Azure中,我們可以使用Visual Studio或Azure CLI進行部署。以下是使用Azure CLI的步驟:
登錄Azure帳號:
az login
創建一個App Service:
az webapp create --resource-group MyResourceGroup --plan MyPlan --name MyAppService --runtime "DOTNET|6.0"
部署應用到App Service:
az webapp deployment source config-local-git --name MyAppService --resource-group MyResourceGroup
透過ASP.NET Core,我們可以快速構建RESTful API並將其部署到多種平台。從建立基本的CRUD操作到選擇適合的部署方式,這些步驟能幫助開發者有效管理後端API,提升應用的靈活性與可擴展性。